/***************************************************************************//**
 * @file custom_font.c
 * @brief custom font source file.
 *******************************************************************************
 * # License
 * <b>Copyright 2022 Silicon Laboratories Inc. www.silabs.com</b>
 *******************************************************************************
 *
 * SPDX-License-Identifier: Zlib
 *
 * The licensor of this software is Silicon Laboratories Inc.
 *
 * This software is provided \'as-is\', without any express or implied
 * warranty. In no event will the authors be held liable for any damages
 * arising from the use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 *
 * 1. The origin of this software must not be misrepresented{} you must not
 *    claim that you wrote the original software. If you use this software
 *    in a product, an acknowledgment in the product documentation would be
 *    appreciated but is not required.
 * 2. Altered source versions must be plainly marked as such, and must not be
 *    misrepresented as being the original software.
 * 3. This notice may not be removed or altered from any source distribution.
 *
 *******************************************************************************
 * # Experimental Quality
 * This code has not been formally tested and is provided as-is. It is not
 * suitable for production environments. In addition, this code will not be
 * maintained and there may be no bug maintenance planned for these resources.
 * Silicon Labs may update projects from time to time.
 ******************************************************************************/

#include "custom_font.h"

const uint8_t glib_font_4x7_bitmaps[] = {
  0x00, 0xAA, 0x20, 0xAA, 0x31, 0x4F, 0x94, 0xF9, 0x8A, 0x00, 0x23, 0xEA,
  0x1E, 0x2B, 0xE2, 0x00, 0xE8, 0xA8, 0xF0, 0x1E, 0x2A, 0x2E, 0x71, 0x06,
  0x3A, 0xB1, 0xE0, 0xA0, 0x52, 0x49, 0x10, 0x89, 0x24, 0xA0, 0xA9, 0xC7,
  0x2A, 0x20, 0x8F, 0x88, 0x20, 0xA0, 0xC0, 0x80, 0x22, 0x44, 0x48, 0x80,
  0x64, 0xA5, 0x29, 0x30, 0xC4, 0x44, 0x4E, 0xE0, 0x84, 0x44, 0x78, 0xE0,
  0x84, 0xC1, 0x78, 0x23, 0x19, 0x4F, 0x10, 0xF4, 0x38, 0x21, 0x70, 0x76,
  0x21, 0xE9, 0x38, 0xF0, 0x88, 0x42, 0x20, 0x64, 0xA4, 0xC9, 0x78, 0xE4,
  0xBC, 0x23, 0x70, 0x82, 0x82, 0x80, 0x09, 0xCF, 0x02, 0xF8, 0x0F, 0x80,
  0x81, 0xC7, 0xA0, 0xE2, 0x44, 0x04, 0x3C, 0x46, 0xBA, 0xAA, 0xBC, 0x40,
  0x38, 0x20, 0x85, 0x14, 0x72, 0x20, 0xF4, 0xA5, 0xC9, 0x78, 0x73, 0x28,
  0x20, 0xC1, 0xE0, 0xF2, 0x28, 0xA2, 0x8B, 0xC0, 0xF4, 0x21, 0xE8, 0x78,
  0xE8, 0x8E, 0x88, 0x73, 0x29, 0xA2, 0x89, 0xC0, 0x94, 0xA5, 0xE9, 0x48,
  0xAA, 0xA0, 0x49, 0x24, 0x96, 0x92, 0x8C, 0x38, 0xB2, 0x60, 0x84, 0x21,
  0x08, 0x78, 0xDB, 0x6F, 0xAA, 0xAA, 0x20, 0x96, 0xB5, 0x6B, 0x48, 0x72,
  0x28, 0xA2, 0x89, 0xC0, 0xF4, 0xBD, 0x08, 0x40, 0x72, 0x28, 0xA2, 0x89,
  0xC1, 0x00, 0xF2, 0x4E, 0x2C, 0x92, 0x20, 0x74, 0x38, 0x61, 0x78, 0xF8,
  0x82, 0x08, 0x20, 0x80, 0x94, 0xA5, 0x29, 0x30, 0x89, 0x45, 0x14, 0x20,
  0x80, 0x92, 0xAA, 0x6C, 0x6C, 0x6C, 0x44, 0xD9, 0x42, 0x08, 0x52, 0x20,
  0xD9, 0x42, 0x08, 0x20, 0x80, 0xF8, 0x42, 0x18, 0x43, 0xE0, 0xD2, 0x49,
  0x30, 0x88, 0x44, 0x42, 0x20, 0xC9, 0x24, 0xB0, 0x23, 0x40, 0xF0, 0x80,
  0x77, 0xA5, 0xE0, 0x84, 0x21, 0xC9, 0x4B, 0x80, 0x68, 0x86, 0x10, 0x84,
  0xE9, 0x49, 0xC0, 0x77, 0xA0, 0xE0, 0x64, 0x4E, 0x44, 0x40, 0x74, 0xA4,
  0xE1, 0x30, 0x84, 0x21, 0xE9, 0x4A, 0x40, 0x8A, 0xA0, 0x41, 0x24, 0x96,
  0x84, 0x21, 0x4C, 0x62, 0x80, 0xAA, 0xA8, 0xFE, 0x92, 0x92, 0x92, 0xF4,
  0xA5, 0x20, 0x64, 0xA4, 0xC0, 0xE4, 0xA5, 0xC8, 0x40, 0x74, 0xA4, 0xE1,
  0x08, 0xE8, 0x88, 0xEC, 0x2E, 0x4E, 0x44, 0x60, 0x94, 0xA5, 0xE0, 0x93,
  0x18, 0xC0, 0xB5, 0x69, 0x22, 0x40, 0xF3, 0x19, 0xE0, 0x93, 0x18, 0x84,
  0x60, 0xF1, 0x19, 0xE0, 0x64, 0x48, 0x44, 0x60, 0xAA, 0xAA, 0xC4, 0x42,
  0x44, 0xC0
};
const glib_gfx_glyph_t glib_font_4x7_glyphs[] = {
  { 0, 1, 1, 4, 0, 0 },    // 0x20 ' '
  { 1, 2, 6, 4, 1, -6 },   // 0x21 '!'
  { 3, 4, 2, 5, 1, -6 },   // 0x22 '"'
  { 4, 6, 7, 8, 1, -7 },   // 0x23 '#'
  { 10, 6, 7, 6, 1, -6 },  // 0x24 '$'
  { 16, 8, 6, 9, 1, -6 },  // 0x25 '%'
  { 22, 6, 6, 7, 1, -6 },  // 0x26 '&'
  { 27, 2, 2, 3, 1, -6 },  // 0x27 '''
  { 28, 3, 7, 4, 1, -7 },  // 0x28 '('
  { 31, 3, 7, 4, 1, -7 },  // 0x29 ')'
  { 34, 6, 4, 5, 0, -6 },  // 0x2A '*'
  { 37, 6, 5, 8, 1, -5 },  // 0x2B '+'
  { 41, 2, 2, 4, 1, -1 },  // 0x2C ','
  { 42, 3, 1, 4, 1, -3 },  // 0x2D '-'
  { 43, 2, 1, 4, 1, -1 },  // 0x2E '.'
  { 44, 4, 7, 4, 0, -6 },  // 0x2F '/'
  { 48, 5, 6, 6, 1, -6 },  // 0x30 '0'
  { 52, 4, 6, 6, 1, -6 },  // 0x31 '1'
  { 55, 5, 6, 6, 1, -6 },  // 0x32 '2'
  { 59, 5, 6, 6, 1, -6 },  // 0x33 '3'
  { 63, 5, 6, 6, 1, -6 },  // 0x34 '4'
  { 67, 5, 6, 6, 1, -6 },  // 0x35 '5'
  { 71, 5, 6, 6, 1, -6 },  // 0x36 '6'
  { 75, 5, 6, 6, 1, -6 },  // 0x37 '7'
  { 79, 5, 6, 6, 1, -6 },  // 0x38 '8'
  { 83, 5, 6, 6, 1, -6 },  // 0x39 '9'
  { 87, 2, 4, 4, 1, -4 },  // 0x3A ':'
  { 88, 2, 5, 4, 1, -4 },  // 0x3B ';'
  { 90, 6, 4, 8, 1, -5 },  // 0x3C '<'
  { 93, 6, 3, 8, 1, -4 },  // 0x3D '='
  { 96, 6, 4, 8, 1, -5 },  // 0x3E '>'
  { 99, 4, 6, 5, 1, -6 },  // 0x3F '?'
  { 102, 8, 7, 9, 1, -6 }, // 0x40 '@'
  { 109, 6, 6, 6, 0, -6 }, // 0x41 'A'
  { 114, 5, 6, 6, 1, -6 }, // 0x42 'B'
  { 118, 6, 6, 7, 1, -6 }, // 0x43 'C'
  { 123, 6, 6, 7, 1, -6 }, // 0x44 'D
  { 128, 5, 6, 6, 1, -6 }, // 0x45 'E'
  { 132, 4, 6, 6, 1, -6 }, // 0x46 'F'
  { 135, 6, 6, 7, 1, -6 }, // 0x47 'G'
  { 140, 5, 6, 7, 1, -6 }, // 0x48 'H'
  { 144, 2, 6, 3, 1, -6 }, // 0x49 'I'
  { 146, 3, 8, 3, 0, -6 }, // 0x4A 'J'
  { 149, 6, 6, 6, 1, -6 }, // 0x4B 'K'
  { 154, 5, 6, 5, 1, -6 }, // 0x4C 'L'
  { 158, 6, 6, 8, 1, -6 }, // 0x4D 'M'
  { 163, 5, 6, 7, 1, -6 }, // 0x4E 'N'
  { 167, 6, 6, 7, 1, -6 }, // 0x4F 'O'
  { 172, 5, 6, 6, 1, -6 }, // 0x50 'P'
  { 176, 6, 7, 7, 1, -6 }, // 0x51 'Q'
  { 182, 6, 6, 7, 1, -6 }, // 0x52 'R'
  { 187, 5, 6, 6, 1, -6 }, // 0x53 'S'
  { 191, 6, 6, 6, 0, -6 }, // 0x54 'T'
  { 196, 5, 6, 7, 1, -6 }, // 0x55 'U'
  { 200, 6, 6, 6, 0, -6 }, // 0x56 'V'
  { 205, 8, 6, 9, 0, -6 }, // 0x57 'W'
  { 211, 6, 6, 6, 0, -6 }, // 0x58 'X'
  { 216, 6, 6, 6, 0, -6 }, // 0x59 'Y'
  { 221, 6, 6, 6, 1, -6 }, // 0x5A 'Z'
  { 226, 3, 7, 4, 1, -6 }, // 0x5B '['
  { 229, 4, 7, 4, 0, -6 }, // 0x5C '\'
  { 233, 3, 7, 4, 1, -6 }, // 0x5D ']'
  { 236, 6, 2, 8, 1, -6 }, // 0x5E '^'
  { 238, 5, 1, 5, 0, 1 },  // 0x5F '_'
  { 239, 3, 1, 5, 1, -6 }, // 0x60 '`'
  { 240, 5, 4, 6, 1, -4 }, // 0x61 'a'
  { 243, 5, 7, 6, 1, -7 }, // 0x62 'b'
  { 248, 4, 4, 5, 1, -4 }, // 0x63 'c'
  { 250, 5, 7, 6, 1, -7 }, // 0x64 'd'
  { 255, 5, 4, 6, 1, -4 }, // 0x65 'e'
  { 258, 4, 7, 4, 0, -7 }, // 0x66 'f'
  { 262, 5, 6, 6, 1, -4 }, // 0x67 'g'
  { 266, 5, 7, 6, 1, -7 }, // 0x68 'h'
  { 271, 2, 6, 3, 1, -6 }, // 0x69 'i'
  { 273, 3, 8, 3, 0, -6 }, // 0x6A 'j'
  { 276, 5, 7, 6, 1, -7 }, // 0x6B 'k'
  { 281, 2, 7, 3, 1, -7 }, // 0x6C 'l'
  { 283, 8, 4, 9, 1, -4 }, // 0x6D 'm'
  { 287, 5, 4, 6, 1, -4 }, // 0x6E 'n'
  { 290, 5, 4, 6, 1, -4 }, // 0x6F 'o'
  { 293, 5, 6, 6, 1, -4 }, // 0x70 'p'
  { 297, 5, 6, 6, 1, -4 }, // 0x71 'q'
  { 301, 4, 4, 4, 1, -4 }, // 0x72 'r'
  { 303, 4, 4, 5, 1, -4 }, // 0x73 's'
  { 305, 4, 5, 4, 0, -5 }, // 0x74 't'
  { 308, 5, 4, 6, 1, -4 }, // 0x75 'u'
  { 311, 5, 4, 6, 0, -4 }, // 0x76 'v'
  { 314, 7, 4, 8, 0, -4 }, // 0x77 'w'
  { 318, 5, 4, 6, 0, -4 }, // 0x78 'x'
  { 321, 5, 6, 6, 1, -4 }, // 0x79 'y'
  { 325, 5, 4, 5, 1, -4 }, // 0x7A 'z'
  { 328, 4, 7, 6, 1, -6 }, // 0x7B '{'
  { 332, 2, 8, 4, 1, -6 }, // 0x7C '|'
  { 334, 4, 7, 6, 1, -6 }  // 0x7D '}'
};                         // 0x7E '~'

const glib_gfx_font_t glib_font_4x7 =
{ (uint8_t *)glib_font_4x7_bitmaps,
  (glib_gfx_glyph_t *)
  glib_font_4x7_glyphs, 0x20,
  0x7E, 9 };
